
<script>
import { h } from 'vue'
// Vue 中 templatei 的模板内容也可通过 render + h 两个函数实现动态创建
// h 函数用于创建虚拟 DOM的
export default {
  name: 'XtxBread',
  //   用户渲染 DOM
  render ({ $slots }) {
    // 获取默认插槽
    const slot = $slots.default()
    // console.log(slot)
    const arr = []
    slot.forEach((item, index) => {
      // 添加一个 item 节点
      arr.push(item)
      // console.log(111, item)
      // 再动态添加一个 i 标签 （最后一项不需要添加）
      // <i class="iconfont icon-angle-right"></i>
      // 💥 && item.type.name 有节点名称才添加i标签(注释节点没有标签名称)
      if (index < slot.length - 1 && item.type.name) {
        arr.push(h('i', { class: 'iconfont icon-angle-right' }))
      }
    })
    // h (标签名或组件，属性，子内容)
    const divVNode = h('div', { class: 'xtx-bread' }, arr)
    // console.log(h)
    // console.log(divVNode)
    return divVNode
  }
}
</script>

<style lang='less'>
.xtx-bread{
  display: flex;
  padding: 25px 10px;
  &-item {
    a {
      color: #666;
      transition: all .4s;
      &:hover {
        color: @xtxColor;
      }
    }
        // 最后一个 item 里面的 i 标签隐藏起来
    &:last-child{
      i{
        display: none;
      }
    }
  }
  i {
    font-size: 12px;
    margin-left: 5px;
    margin-right: 5px;
    line-height: 22px;
  }
}
</style>
